// 6_Results.do
// MESP Results
// ////////////////////////////////////

// This do-file replicates the results presented in 3ie Final Report, using survey data.
// Tables are referenced according to 3ie Final Report.

// ////////////////////////////////////////////////////////////////////////
// INDEX
// I.	Table 3: Treatment Groups (attrition)
// II.	Construction of variables required for bounds estimations (Table 7)
// III.	Table 2: Variable means and difference-test between treatments group
// IV.	Reshaping of database and program for weightning
// V.	Table 4: ITT effects on main labor market outcomes
// VI.	Table 5: Mechanisms
// VII.	Table 6a: Heterogenous Treatment Effects (2011)
// VIII.Table 6b: Heterogenous Treatment Effects (2013)
// IX. 	Table 7: Employment effects of Treatment Arms
// X.	Table 9: Heterogenous Treatment Effects

// ////////////////////////////////////////////////////////////////////////

clear all
set more off
matrix drop _all
capture log close

log using "${path_logs}/6_Results.log", replace

use "${path_data}/variables2010_2011_2013_ready.dta", clear


// ////////////////////////////////////////////////////////////////////////
// TABLE 3: TREATMENT GROUPS AND ATTRITION
// ////////////////////////////////////////////////////////////////////////

// Panel A: Number of observations
// Column 1 of Panel A: Randomized
tab TT 
// Column 2 of Panel A: Base Line
tab TT if ind_c2010==1
// Column 3 of Panel A: Follow-up 1
tab TT if ind_c2011==1
// Column 4 of Panel A: Follow-up 2
tab TT if ind_c2013==1
// Column 5 of Panel A: All Rounds
tab TT if ind_c2010==1 & ind_c2011==1 & ind_c2013==1


// Panel B: Response rates with respect to base line
// Can be constructed using Panel A


// Panel C: Attrition

gen all_rounds=1 if ind_c2010==1 & ind_c2011==1 & ind_c2013==1
tab TT if all_rounds==1
replace all_rounds=0 if all_rounds==. & ind_c2010!=.

reg all_rounds mesp mesp_p

matrix define test_all=J(4,3,.) 
ttest all_rounds if mesp!=1, by(mesp_p) // test mesp_p vs C
matrix test_all[1,1]=r(p)
matrix test_all[1,2]=r(N_1)
matrix test_all[1,3]=r(N_2)

ttest all_rounds if C!=1, by(mesp_p) // test mesp vs. mesp_p
matrix test_all[2,1]=r(p)
matrix test_all[2,2]=r(N_1)
matrix test_all[2,3]=r(N_2)

ttest all_rounds if mesp_p!=1, by(mesp) // test mesp vs C
matrix test_all[3,1]=r(p)
matrix test_all[3,2]=r(N_1)
matrix test_all[3,3]=r(N_2)

ttest all_rounds , by(anymesp) // test "T (anymesp) vs C" 
matrix test_all[4,1]=r(p)
matrix test_all[4,2]=r(N_1)
matrix test_all[4,3]=r(N_2)

//Panel C:
matrix list test_all 
svmat test_all


// Panel D: Observables and attrition
//Considered observables are: gender, age, incomplete secondary education, secondary education, terciary education, household size, family cores
foreach var in sexo2010 edad2010 media_inc2010 media2010 superior2010 numper2010 nucleos2010  {

gen mesp1_`var'=mesp*`var'
gen mesp2_p_`var'=mesp_p*`var' 

}

reg all_rounds mesp mesp_p mesp1_* mesp2_p_*

matrix test_f=J(2,2,.)
test mesp1_sexo mesp1_edad mesp1_media_inc mesp1_media2010 mesp1_superior mesp1_numper mesp1_nucleos 

matrix test_f[1,1]=r(F)
matrix test_f[1,2]=r(p)

test mesp2_p_sexo mesp2_p_edad mesp2_p_media_inc mesp2_p_media2010 mesp2_p_superior mesp2_p_numper mesp2_p_nucleos 

matrix test_f[2,1]=r(F)
matrix test_f[2,2]=r(p)

//Panel D:
matrix list test_f
svmat test_f


drop all_rounds
drop mesp1_sexo mesp1_edad mesp1_media_inc mesp1_media2010 mesp1_superior mesp1_numper mesp1_nucleos 
drop mesp2_p_sexo mesp2_p_edad mesp2_p_media_inc mesp2_p_media2010 mesp2_p_superior mesp2_p_numper mesp2_p_nucleos 


// //////////////////////////////////////////////////////////// ///////////////////
// CONSTRUCTION OF VARIABLES REQUIRED FOR BOUND ESTIMATION (NEEDED FOR TABLE 7)////
///////////////////////////////////////////////////////////////////////////////////

sort id2010 id2011 

// Key variables for attrition with respect to randomized sample

gen enc20112013=0 if TT!=.
replace enc20112013=1 if TT!=. & ind_c2011==1 & ind_c2013==1 & ind_c2010==1

// Tails for 2010-2011-2013

sum enc20112013 if TT==1 | TT==2
global t_att_gcmesp = 1-r(mean)
sum enc20112013 if TT==3
global t_att_mesp_p = 1-r(mean)
global t_res_mesp_p = r(mean)

global tail101113=($t_att_gcmesp - $t_att_mesp_p ) / $t_res_mesp_p

// //////////////////////////////////////////////////////////////////////////////////////////////
// TABLE 2: VARIABLE MEANS AND DIFFERENCE-TEST BETWEEN TREATMENT GROUPS (SAMPLE 2011 AND 2013) //
// //////////////////////////////////////////////////////////////////////////////////////////////

keep if ind_c2010==1 & ind_c2011==1 & ind_c2013==1

global vars_ind 	"sexo edad basica media_inc media superior fichaps"
global vars_ind_emp "trabaja independiente ylaborales ydeptes yindeptes"

global estdes_bl "$vars_ind $vars_ind_emp"


global Nvars ""					
foreach var in $estdes_bl {
	global Nvars= $Nvars +1
	}
di "Nvars = $Nvars"
matrix define T_estdes = J($Nvars,9,.)
matrix rownames T_estdes = $estdes_bl $estdes_hl
matrix colnames T_estdes = N meanC meananymesp meanmesp meanmesp_p p_anymespvsC p_mespvsC p_mesp_pvsmesp p_mesp_pvsC

local row=1
foreach var in $estdes_bl $estdes_hl {
	qui sum `var'2010 
		matrix T_estdes[`row',1]=r(N)
	qui sum `var'2010 if TT==1 
		matrix T_estdes[`row',2]=r(mean)
	qui sum `var'2010 if anymesp==1 
		matrix T_estdes[`row',3]=r(mean)
	quie sum `var'2010 if TT==2
		matrix T_estdes[`row',4]=r(mean)
	quie sum `var'2010 if TT==3
		matrix T_estdes[`row',5]=r(mean)
	quie ttest `var'2010, by(anymesp)	
		matrix T_estdes[`row',6]=r(p)
	quie ttest `var'2010 if TT!=3, by(TT)	
		matrix T_estdes[`row',7]=r(p)
	quie ttest `var'2010 if TT!=1, by(TT)	
		matrix T_estdes[`row',8]=r(p)
	quie ttest `var'2010 if TT!=2, by(TT)	
		matrix T_estdes[`row',9]=r(p)
	local row=`row' + 1
	}

matrix mesp_p=T_estdes

// Table 2:
matrix list mesp_p
svmat mesp_p



///////////////////////////////////////////////////////////////////////////
// RESHAPING OF DATABASE TO PANEL DATA (LONG) AND PROGRAM FOR WEIGHTNING //
///////////////////////////////////////////////////////////////////////////

// Variable renaming needed for reshaping

rename ylaborales2010 ylaborales_base
rename independiente2010 independiente_base
rename dependiente2010 dependiente_base
rename trabaja2010 trabaja_base
rename yindeptes2010 yindeptes_base
rename ydeptes2010 ydeptes_base
gen totalactivos2011=.


sort id2010

reshape long ylaborales independiente dependiente trabaja ht yindeptes ydeptes totalactivos marketing stock cost plan tot_pr dinero_mano ver_inven ver_registro, i(id2011) j(year)


// Year dummies

gen d2011=1 if year==2011
replace d2011=0 if year==2013

gen d2013=0 if year==2011
replace d2013=1 if year==2013

 // Conversion of monetary variables from November 2009 chilean pesos to US Dollars (Conversion rate: USD 1 = CLP 500)

foreach var in yindeptes yindeptes_base ydeptes ydeptes_base ylaborales ylaborales_base dinero_mano totalactivos {
replace `var'=`var'/500 if `var'!=.
}


// Program: Calculation of Humphreys' weights (2009) for regressions

capture pr drop weightsstrata
program define weightsstrata 
	local T "`1'" // weighsstrata tiene que ser con mespmesp_p � anymesp
	noisily display "`T'"
	capture drop q
	capture drop ind1

	gen ind1=1 if e(sample)


	//Sizes by strata, for 2011 and 2013

	sort strata
	
	if "`T'"=="mespmesp_p" {
		by strata: egen mesp_s=sum(mesp) if e(sample)
		by strata: egen mesp_p_s=sum(mesp_p) if e(sample)
		by strata: egen control_s=sum(C) if e(sample)
		by strata: egen total=sum(ind1) if e(sample)


		** Probability by strata
		gen q=(mesp_s*mesp + mesp_p_s*mesp_p + control_s*C)/total if e(sample)
	
		drop ind1 mesp_s mesp_p_s control_s total
		}
	else {
		by strata: egen anymesp_s=sum(anymesp) if e(sample)
		by strata: egen control_s=sum(C) if e(sample)
		by strata: egen total=sum(ind1) if e(sample)
			
		gen q=(anymesp_s*anymesp + control_s*C)/total if e(sample)

		drop ind1 anymesp_s control_s total
		}
	
	label var q "Probability of being in treatment arm within strata"
	noisily d q
	end

	rename qualityindex cqualityindex

// //////////////////////////////////////////////////////////////////////////////////////////////
// TABLE 4: ITT EFFECTS ON MAIN LABOR MARKET OUTCOMES
// //////////////////////////////////////////////////////////////////////////////////////////////


//Panel A: Employment

//Self-employment
//2011
reg independiente anymesp $estrato independiente_base if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg independiente anymesp $estrato independiente_base if d2011==1 [aw=1/q], cluster(com_proj)
qui sum independiente if TT==1 & e(sample)
//2013
reg independiente anymesp $estrato independiente_base if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg independiente anymesp $estrato independiente_base if d2013==1 [aw=1/q], cluster(com_proj)
qui sum independiente if TT==1 & e(sample)


//Wage Employment
//2011
reg dependiente anymesp $estrato dependiente_base if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg dependiente anymesp $estrato dependiente_base if d2011==1 [aw=1/q], cluster(com_proj)
qui sum dependiente if TT==1 & e(sample)
//2013
reg dependiente anymesp $estrato dependiente_base if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg dependiente anymesp $estrato dependiente_base if d2013==1 [aw=1/q], cluster(com_proj)
qui sum dependiente if TT==1 & e(sample)


//Total Employment
//2011
reg trabaja anymesp $estrato trabaja_base if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg trabaja anymesp $estrato trabaja_base if d2011==1 [aw=1/q], cluster(com_proj)
qui sum trabaja if TT==1 & e(sample)
//2013
reg trabaja anymesp $estrato trabaja_base if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg trabaja anymesp $estrato trabaja_base if d2013==1 [aw=1/q], cluster(com_proj)
qui sum trabaja if TT==1 & e(sample)



//Panel B: Income and Hours Worked

//Self-employment Income
//2011
reg yindeptes anymesp $estrato yindeptes_base if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg yindeptes anymesp $estrato yindeptes_base if d2011==1 [aw=1/q], cluster(com_proj)
qui sum yindeptes if TT==1 & e(sample)
//2013
reg yindeptes anymesp $estrato yindeptes_base if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg yindeptes anymesp $estrato yindeptes_base if d2013==1 [aw=1/q], cluster(com_proj)
qui sum yindeptes if TT==1 & e(sample)


//Wage Employment Income
//2011
reg ydeptes anymesp $estrato ydeptes_base if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg ydeptes anymesp $estrato ydeptes_base if d2011==1 [aw=1/q], cluster(com_proj)
qui sum ydeptes if TT==1 & e(sample)
//2013
reg ydeptes anymesp $estrato ydeptes_base if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg ydeptes anymesp $estrato ydeptes_base if d2013==1 [aw=1/q], cluster(com_proj)
qui sum ydeptes if TT==1 & e(sample)


//Total Labor Income
//2011
reg ylaborales anymesp $estrato ylaborales_base if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg ylaborales anymesp $estrato ylaborales_base if d2011==1 [aw=1/q], cluster(com_proj)
qui sum ylaborales if TT==1 & e(sample)
//2013
reg ylaborales anymesp $estrato ylaborales_base if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg ylaborales anymesp $estrato ylaborales_base if d2013==1 [aw=1/q], cluster(com_proj)
qui sum ylaborales if TT==1 & e(sample)


//Weekly Hours Worked
//2011
reg ht anymesp $estrato if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg ht anymesp $estrato if d2011==1 [aw=1/q], cluster(com_proj)
qui sum ht if TT==1 & e(sample)
//2013
reg ht anymesp $estrato if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg ht anymesp $estrato if d2013==1 [aw=1/q], cluster(com_proj)
qui sum ht if TT==1 & e(sample)




// //////////////////////////////////////////////////////////////////////////////////////////////
// TABLE 5: MECHANISMS
// //////////////////////////////////////////////////////////////////////////////////////////////

//Marketing
//2011
reg marketing anymesp $estrato if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg marketing anymesp $estrato if d2011==1 [aw=1/q], cluster(com_proj)
qui sum marketing if TT==1 & e(sample)
//2013
reg marketing anymesp $estrato if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg marketing anymesp $estrato if d2013==1 [aw=1/q], cluster(com_proj)
qui sum marketing if TT==1 & e(sample)

//Inventory management
//2011
reg stock anymesp $estrato if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg stock anymesp $estrato if d2011==1 [aw=1/q], cluster(com_proj)
qui sum stock if TT==1 & e(sample)
//2013
reg stock anymesp $estrato if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg stock anymesp $estrato if d2013==1 [aw=1/q], cluster(com_proj)
qui sum stock if TT==1 & e(sample)

// Costing and Record Keeping
//2011
reg cost anymesp $estrato if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg cost anymesp $estrato if d2011==1 [aw=1/q], cluster(com_proj)
qui sum cost if TT==1 & e(sample)
//2013
reg cost anymesp $estrato if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg cost anymesp $estrato if d2013==1 [aw=1/q], cluster(com_proj)
qui sum cost if TT==1 & e(sample)


//Financial Planning
//2011
reg plan anymesp $estrato if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg plan anymesp $estrato if d2011==1 [aw=1/q], cluster(com_proj)
qui sum plan if TT==1 & e(sample)
//2013
reg plan anymesp $estrato if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg plan anymesp $estrato if d2013==1 [aw=1/q], cluster(com_proj)
qui sum plan if TT==1 & e(sample)


// Business Practices
//2011
reg tot_pr anymesp $estrato if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg tot_pr anymesp $estrato if d2011==1 [aw=1/q], cluster(com_proj)
qui sum tot_pr if TT==1 & e(sample)
//2013
reg tot_pr anymesp $estrato if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg tot_pr anymesp $estrato if d2013==1 [aw=1/q], cluster(com_proj)
qui sum tot_pr if TT==1 & e(sample)


// Available Cash
//2011
reg dinero_mano anymesp $estrato if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg dinero_mano anymesp $estrato if d2011==1 [aw=1/q], cluster(com_proj)
qui sum dinero_mano if TT==1 & e(sample)
//2013
reg dinero_mano anymesp $estrato if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg dinero_mano anymesp $estrato if d2013==1 [aw=1/q], cluster(com_proj)
qui sum dinero_mano if TT==1 & e(sample)


// Inventory Available
//2011
reg ver_inven anymesp $estrato if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg ver_inven anymesp $estrato if d2011==1 [aw=1/q], cluster(com_proj)
qui sum ver_inven if TT==1 & e(sample)
//2013
reg ver_inven anymesp $estrato if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg ver_inven anymesp $estrato if d2013==1 [aw=1/q], cluster(com_proj)
qui sum ver_inven if TT==1 & e(sample)


// Registry Book Available
//2011
reg ver_registro anymesp $estrato if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg ver_registro anymesp $estrato if d2011==1 [aw=1/q], cluster(com_proj)
qui sum ver_registro if TT==1 & e(sample)
//2013
reg ver_registro anymesp $estrato if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg ver_registro anymesp $estrato if d2013==1 [aw=1/q], cluster(com_proj)
qui sum ver_registro if TT==1 & e(sample)


// Panel B: Assets
// Total Assets (Business + Household)
//2013
reg totalactivos anymesp $estrato if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg totalactivos anymesp $estrato if d2013==1 [aw=1/q], cluster(com_proj)
qui sum totalactivos if TT==1 & e(sample)


// //////////////////////////////////////////////////////////////////////////////////////////////
// TABLE 6a: HETEROGENOUS TREATMENT EFFECTS (2011)
// //////////////////////////////////////////////////////////////////////////////////////////////

// Creation of variables
gen anymesp_gradrate=anymesp*gradrate
gen anymesp_qualityindex=anymesp*cqualityindex


// Macros for regressions

global heterog1 "anymesp anymesp_gradrate gradrate $estrato"  
global heterog2 "anymesp anymesp_qualityindex cqualityindex $estrato"


// Self-Employment
reg independiente $heterog1 independiente_base if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg independiente $heterog1 independiente_base if d2011==1 [aw=1/q], cluster(com_proj)

reg independiente $heterog2 independiente_base if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg independiente $heterog2 independiente_base if d2011==1 [aw=1/q], cluster(com_proj)


// Wage Employment
reg dependiente $heterog1 dependiente_base if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg dependiente $heterog1 dependiente_base if d2011==1 [aw=1/q], cluster(com_proj)

reg dependiente $heterog2 dependiente_base if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg dependiente $heterog2 dependiente_base if d2011==1 [aw=1/q], cluster(com_proj)


// Total Employment
reg trabaja $heterog1 trabaja_base if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg trabaja $heterog1 trabaja_base if d2011==1 [aw=1/q], cluster(com_proj)

reg trabaja $heterog2 trabaja_base if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg trabaja $heterog2 trabaja_base if d2011==1 [aw=1/q], cluster(com_proj)


// Self-Employment Income
reg yindeptes $heterog1 yindeptes_base if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg yindeptes $heterog1 yindeptes_base if d2011==1 [aw=1/q], cluster(com_proj)

reg yindeptes $heterog2 yindeptes_base if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg yindeptes $heterog2 yindeptes_base if d2011==1 [aw=1/q], cluster(com_proj)


// Wage Employment Income
reg ydeptes $heterog1 ydeptes_base if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg ydeptes $heterog1 ydeptes_base if d2011==1 [aw=1/q], cluster(com_proj)

reg ydeptes $heterog2 ydeptes_base if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg ydeptes $heterog2 ydeptes_base if d2011==1 [aw=1/q], cluster(com_proj)


// Total Labor Income
reg ylaborales $heterog1 ylaborales_base if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg ylaborales $heterog1 ylaborales_base if d2011==1 [aw=1/q], cluster(com_proj)

reg ylaborales $heterog2 ylaborales_base if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg ylaborales $heterog2 ylaborales_base if d2011==1 [aw=1/q], cluster(com_proj)


// //////////////////////////////////////////////////////////////////////////////////////////////
// TABLE 6B: HETEROGENOUS TREATMENT EFFECTS (2013)
// //////////////////////////////////////////////////////////////////////////////////////////////

// Self-Employment
reg independiente $heterog1 independiente_base if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg independiente $heterog1 independiente_base if d2013==1 [aw=1/q], cluster(com_proj)

reg independiente $heterog2 independiente_base if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg independiente $heterog2 independiente_base if d2013==1 [aw=1/q], cluster(com_proj)


// Wage Employment
reg dependiente $heterog1 dependiente_base if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg dependiente $heterog1 dependiente_base if d2013==1 [aw=1/q], cluster(com_proj)

reg dependiente $heterog2 dependiente_base if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg dependiente $heterog2 dependiente_base if d2013==1 [aw=1/q], cluster(com_proj)


// Total Employment
reg trabaja $heterog1 trabaja_base if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg trabaja $heterog1 trabaja_base if d2013==1 [aw=1/q], cluster(com_proj)

reg trabaja $heterog2 trabaja_base if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg trabaja $heterog2 trabaja_base if d2013==1 [aw=1/q], cluster(com_proj)


// Self-Employment Income
reg yindeptes $heterog1 yindeptes_base if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg yindeptes $heterog1 yindeptes_base if d2013==1 [aw=1/q], cluster(com_proj)

reg yindeptes $heterog2 yindeptes_base if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg yindeptes $heterog2 yindeptes_base if d2013==1 [aw=1/q], cluster(com_proj)


// Wage Employment Income
reg ydeptes $heterog1 ydeptes_base if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg ydeptes $heterog1 ydeptes_base if d2013==1 [aw=1/q], cluster(com_proj)

reg ydeptes $heterog2 ydeptes_base if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg ydeptes $heterog2 ydeptes_base if d2013==1 [aw=1/q], cluster(com_proj)


// Total Labor Income
reg ylaborales $heterog1 ylaborales_base if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg ylaborales $heterog1 ylaborales_base if d2013==1 [aw=1/q], cluster(com_proj)

reg ylaborales $heterog2 ylaborales_base if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg ylaborales $heterog2 ylaborales_base if d2013==1 [aw=1/q], cluster(com_proj)


// //////////////////////////////////////////////////////////////////////////////////////////////
// TABLE 7: EMPLOYMENT EFFECTS OF TREATMENT ARMS
// //////////////////////////////////////////////////////////////////////////////////////////////

// Generation of bounded variables

foreach k in 2011 2013 {

// Attrition with respect to randomized sample

sort d2013 id2010 id2011 
	
// 1. Generation of bounded variables
global cutoff=round(100*(1-$tail101113))

// 1.1 Continuous variables

// 1.1.1 Continuous variables - Lower Bound (upper tail of values is deleted)
foreach y in ylaborales yindeptes ydeptes ht {
	// Replaces with missing observations greater than "tail"
	if `k'==2011 {
	gen `y'lb=`y' if d`k'==1 // For MESP+ - with greater response rate
	}
	else { 
	replace `y'lb=`y' if d`k'==1 // For MESP+ - with greater response rate
	}
	_pctile `y' if TT==3 & d`k'==1, p($cutoff)
	replace `y'lb=. if `y'>=r(r1) & (TT==3 ) & d`k'==1
	}

sort d2013 id2010 id2011

// 1.1.2 Continuous variables - Upper Bound (different because mass in 0 is positive => random)
capture drop ind
gen ind=1 if d`k'==1
foreach y in ylaborales yindeptes ydeptes ht {
	** Replaces with missing observations greater than "tail"
	
	if `k'==2011 {
	gen `y'ub=`y' if d`k'==1 // For MESP+ - with greater response rate
	}
	else {
	replace `y'ub=`y' if d`k'==1 // For MESP+ - with greater response rate
	}
	
	if `k'==2011 {
	set seed 101 
	}
else if `k'==2013 {
	set seed 1012013
	}
	
	gen random=uniform()*100 if `y'!=. & d`k'==1
	sort TT `y' random
	by TT: egen total=total(ind) if `y'!=. & d`k'==1
	by TT: gen kk=sum(ind) if `y'!=. & d`k'==1
	by TT: gen missing=${tail101113}*total if d`k'==1
	sum missing if d`k'==1
	// Randomly replaces with missing observations with y==0
	replace `y'ub=. if kk<=missing & (TT==3) & `y'==0 & d`k'==1
	drop random total kk missing
	}


sort d2013 id2010 id2011
// 1.2 Binary variables - Lower and Upper Bound (randomly deletes lower and upper tails)
capture drop ind 
gen ind=1 if d`k'==1
foreach y in trabaja independiente dependiente {
	
	if `k'==2011 {
	gen `y'lb=`y' if d`k'==1 // For MESP+ - with greater response rate
	gen `y'ub=`y' if d`k'==1
	
	bysort d2013 TT: gen kk2=sum(ind) if `y'!=. & d`k'==1 // For MESP+ - with greater response rate
	}
	else {
	replace `y'lb=`y' if d`k'==1 // For MESP+ - with greater response rate
	replace `y'ub=`y' if d`k'==1 // For MESP+ - with greater response rate
	
	bysort d2013 TT: gen kk2=sum(ind) if `y'!=. & d`k'==1 // For MESP+ - with greater response rate
	}
	
	if `k'==2011 {
	set seed 101 
	}
else if `k'==2013 {
	set seed 1012013
	}
	capture drop random1 random2
	gen random1=uniform()*100 if `y'!=. & d`k'==1
	gen random2=uniform()*100 if `y'!=. & d`k'==1
	sort d2013 TT `y' random1 // Lower Bound
	by d2013 TT: egen total=total(ind) if `y'!=. & d`k'==1
	by d2013 TT: gen kk1=sum(ind) if `y'!=. & d`k'==1
	by d2013 TT: gen missing1=$cutoff*total/100 if d`k'==1
	// Randomly replaces with missing observations with y==1
	replace `y'lb=. if kk1>=missing1 & (TT==3) & `y'>=1 & d`k'==1
	sort d2013 TT `y' random2 // Upper Bound
	by d2013 TT: gen missing2=${tail101113}*total if d`k'==1
	// Randomly replaces with missing observations with y==0
	replace `y'ub=. if kk2<=missing2 & (TT==3) & `y'==0 & d`k'==1
	drop random1 random2 total kk1 kk2 missing1 missing2
	}
}

sort id2011 id2013

// Panel A: Levels

// Self-Employment
//2011
reg independiente mesp mesp_p $estrato independiente_base if d2011==1, cluster(com_proj)
weightsstrata mespmesp_p
reg independiente mesp mesp_p $estrato independiente_base if d2011==1 [aw=1/q], cluster(com_proj)
test mesp=mesp_p
qui sum independiente if TT==1 & e(sample)

//2013
reg independiente mesp mesp_p $estrato independiente_base if d2013==1, cluster(com_proj)
weightsstrata mespmesp_p
reg independiente mesp mesp_p $estrato independiente_base if d2013==1 [aw=1/q], cluster(com_proj)
test mesp=mesp_p
qui sum independiente if TT==1 & e(sample)


// Wage Employment
//2011
reg dependiente mesp mesp_p $estrato dependiente_base if d2011==1, cluster(com_proj)
weightsstrata mespmesp_p
reg dependiente mesp mesp_p $estrato dependiente_base if d2011==1 [aw=1/q], cluster(com_proj)
test mesp=mesp_p
qui sum dependiente if TT==1 & e(sample)

//2013
reg dependiente mesp mesp_p $estrato dependiente_base if d2013==1, cluster(com_proj)
weightsstrata mespmesp_p
reg dependiente mesp mesp_p $estrato dependiente_base if d2013==1 [aw=1/q], cluster(com_proj)
test mesp=mesp_p
qui sum dependiente if TT==1 & e(sample)


// Total Employment
//2011
reg trabaja mesp mesp_p $estrato trabaja_base if d2011==1, cluster(com_proj)
weightsstrata mespmesp_p
reg trabaja mesp mesp_p $estrato trabaja_base if d2011==1 [aw=1/q], cluster(com_proj)
test mesp=mesp_p
qui sum trabaja if TT==1 & e(sample)

//2013
reg trabaja mesp mesp_p $estrato trabaja_base if d2013==1, cluster(com_proj)
weightsstrata mespmesp_p
reg trabaja mesp mesp_p $estrato trabaja_base if d2013==1 [aw=1/q], cluster(com_proj)
test mesp=mesp_p
qui sum trabaja if TT==1 & e(sample)


// Panel B: Lower Bound

// Self-Employment
//2011
reg independientelb mesp mesp_p $estrato independiente_base if d2011==1, cluster(com_proj)
weightsstrata mespmesp_p
reg independientelb mesp mesp_p $estrato independiente_base if d2011==1 [aw=1/q], cluster(com_proj)
test mesp=mesp_p
qui sum independientelb if TT==1 & e(sample)

//2013
reg independientelb mesp mesp_p $estrato independiente_base if d2013==1, cluster(com_proj)
weightsstrata mespmesp_p
reg independientelb mesp mesp_p $estrato independiente_base if d2013==1 [aw=1/q], cluster(com_proj)
test mesp=mesp_p
qui sum independientelb if TT==1 & e(sample)


// Wage Employment
//2011
reg dependientelb mesp mesp_p $estrato dependiente_base if d2011==1, cluster(com_proj)
weightsstrata mespmesp_p
reg dependientelb mesp mesp_p $estrato dependiente_base if d2011==1 [aw=1/q], cluster(com_proj)
test mesp=mesp_p
qui sum dependientelb if TT==1 & e(sample)

//2013
reg dependientelb mesp mesp_p $estrato dependiente_base if d2013==1, cluster(com_proj)
weightsstrata mespmesp_p
reg dependientelb mesp mesp_p $estrato dependiente_base if d2013==1 [aw=1/q], cluster(com_proj)
test mesp=mesp_p
qui sum dependientelb if TT==1 & e(sample)


// Total Employment
//2011
reg trabajalb mesp mesp_p $estrato trabaja_base if d2011==1, cluster(com_proj)
weightsstrata mespmesp_p
reg trabajalb mesp mesp_p $estrato trabaja_base if d2011==1 [aw=1/q], cluster(com_proj)
test mesp=mesp_p
qui sum trabajalb if TT==1 & e(sample)

//2013
reg trabajalb mesp mesp_p $estrato trabaja_base if d2013==1, cluster(com_proj)
weightsstrata mespmesp_p
reg trabajalb mesp mesp_p $estrato trabaja_base if d2013==1 [aw=1/q], cluster(com_proj)
test mesp=mesp_p
qui sum trabajalb if TT==1 & e(sample)


// Panel C: Upper Bound

// Self-Employment
//2011
reg independienteub mesp mesp_p $estrato independiente_base if d2011==1, cluster(com_proj)
weightsstrata mespmesp_p
reg independienteub mesp mesp_p $estrato independiente_base if d2011==1 [aw=1/q], cluster(com_proj)
test mesp=mesp_p
qui sum independienteub if TT==1 & e(sample)

//2013
reg independienteub mesp mesp_p $estrato independiente_base if d2013==1, cluster(com_proj)
weightsstrata mespmesp_p
reg independienteub mesp mesp_p $estrato independiente_base if d2013==1 [aw=1/q], cluster(com_proj)
test mesp=mesp_p
qui sum independienteub if TT==1 & e(sample)


// Wage Employment
//2011
reg dependienteub mesp mesp_p $estrato dependiente_base if d2011==1, cluster(com_proj)
weightsstrata mespmesp_p
reg dependienteub mesp mesp_p $estrato dependiente_base if d2011==1 [aw=1/q], cluster(com_proj)
test mesp=mesp_p
qui sum dependienteub if TT==1 & e(sample)

//2013
reg dependienteub mesp mesp_p $estrato dependiente_base if d2013==1, cluster(com_proj)
weightsstrata mespmesp_p
reg dependienteub mesp mesp_p $estrato dependiente_base if d2013==1 [aw=1/q], cluster(com_proj)
test mesp=mesp_p
qui sum dependienteub if TT==1 & e(sample)


// Total Employment
//2011
reg trabajaub mesp mesp_p $estrato trabaja_base if d2011==1, cluster(com_proj)
weightsstrata mespmesp_p
reg trabajaub mesp mesp_p $estrato trabaja_base if d2011==1 [aw=1/q], cluster(com_proj)
test mesp=mesp_p
qui sum trabajaub if TT==1 & e(sample)

//2013
reg trabajaub mesp mesp_p $estrato trabaja_base if d2013==1, cluster(com_proj)
weightsstrata mespmesp_p
reg trabajaub mesp mesp_p $estrato trabaja_base if d2013==1 [aw=1/q], cluster(com_proj)
test mesp=mesp_p
qui sum trabajaub if TT==1 & e(sample)


// //////////////////////////////////////////////////////////////////////////////////////////////
// TABLE 9: HETEROGENOUS TREATMENT EFFECTS
// //////////////////////////////////////////////////////////////////////////////////////////////


// Creation of variables


gen anymesp_independiente=anymesp*independiente_base
gen anymesp_dependiente=anymesp*dependiente_base

// Macros for regressions

global heterog3 "anymesp anymesp_independiente anymesp_dependiente independiente_base dependiente_base"

// Panel A: 2011

// Self-Employment
reg independiente $heterog3 independiente_base if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg independiente $heterog3 independiente_base if d2011==1 [aw=1/q], cluster(com_proj)

// Wage Employment
reg dependiente $heterog3 dependiente_base if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg dependiente $heterog3 dependiente_base if d2011==1 [aw=1/q], cluster(com_proj)

// Total Employment
reg trabaja $heterog3 trabaja_base if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg trabaja $heterog3 trabaja_base if d2011==1 [aw=1/q], cluster(com_proj)

// Self-Employment Income
reg yindeptes $heterog3 yindeptes_base if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg yindeptes $heterog3 yindeptes_base if d2011==1 [aw=1/q], cluster(com_proj)

// Wage Employment Income
reg ydeptes $heterog3 ydeptes_base if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg ydeptes $heterog3 ydeptes_base if d2011==1 [aw=1/q], cluster(com_proj)

// Total Labor Income
reg ylaborales $heterog3 ylaborales_base if d2011==1, cluster(com_proj)
weightsstrata anymesp
reg ylaborales $heterog3 ylaborales_base if d2011==1 [aw=1/q], cluster(com_proj)



// Panel B: 2013

// Self-Employment
reg independiente $heterog3 independiente_base if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg independiente $heterog3 independiente_base if d2013==1 [aw=1/q], cluster(com_proj)

// Wage Employment
reg dependiente $heterog3 dependiente_base if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg dependiente $heterog3 dependiente_base if d2013==1 [aw=1/q], cluster(com_proj)

// Total Employment
reg trabaja $heterog3 trabaja_base if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg trabaja $heterog3 trabaja_base if d2013==1 [aw=1/q], cluster(com_proj)

// Self-Employment Income
reg yindeptes $heterog3 yindeptes_base if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg yindeptes $heterog3 yindeptes_base if d2013==1 [aw=1/q], cluster(com_proj)

// Wage Employment Income
reg ydeptes $heterog3 ydeptes_base if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg ydeptes $heterog3 ydeptes_base if d2013==1 [aw=1/q], cluster(com_proj)

// Total Labor Income
reg ylaborales $heterog3 ylaborales_base if d2013==1, cluster(com_proj)
weightsstrata anymesp
reg ylaborales $heterog3 ylaborales_base if d2013==1 [aw=1/q], cluster(com_proj)

log close

